typedef struct Node
{
	int data;
	struct Node *next;
}*list;
void del(list head,int x)
{
	list p=head;
	while(p!=NULL&&p->next!=NULL)//p未到表尾，则循环，可以删除所有值为x的结点
	{
		//p!=NULL是因为删除了p的后继之后，p可能为尾结点，这时P后移就会遇到NULL
		if(p->next->data==x)
		{
			list s=p->next;
			p->next=p->next->next;
			free(s);
		}
		p=p->next;
	}
	return;
}
